// import { Form } from "./Form";

/**
 * 系统菜单对象
 *
 * @export
 * @class Menu
 */
export class Menu {

  /**
   * Creates an instance of menu.
   * @param {number} menuId 菜单ID
   * @param {string} menuName 菜单名称
   * @param {string} menuSubName 菜单子名称
   * @param {string} menuPath 菜单导航路径
   * @param {string} menuIcon 菜单图标
   * @param {number} menuSeq 菜单排序
   * @param {number} [parentId] 菜单父ID
   * @param {boolean} [isShow] 是否显示
   * @param {boolean} [unMenuShortCuts] 是否固定菜单
   * @param {boolean} [unPermission] 是否有操作权限
   * @memberOf menu
   */
  constructor(
    public menuId: number,
    public menuName: string,
    public menuSubName: string,
    public menuPath: string,
    public menuIcon: string,
    public menuSeq: number,
    public parentId?: number,
    public menuLevel?: number,
    public children?: Menu[],
    public isShow?: boolean,
    public formId?: number,
    public unMenuShortCuts?: boolean,
    public permissionId?: number,
    public unPermission?: boolean,
    public isChecked: boolean = false,
    public isFavorite: boolean = false
  ) {
    Object.defineProperty(this, 'children', {enumerable: false});
    //   Object.defineProperty(this, "isShow", { enumerable: false });
    Object.defineProperty(this, 'isChecked', {enumerable: false});
    Object.defineProperty(this, 'menuLevel', {enumerable: false});
    Object.defineProperty(this, 'isFavorite', {enumerable: false});
  }
}
